"""
数据集验证框架

用于验证数据集有效性的完整框架，包括：
1. 预标签生成
2. 动态few-shot选择
3. 评估和修改任务
4. 结果分析和比较
"""

__version__ = "1.0.0"

import logging
import os
from datetime import datetime

def setup_logging(log_dir="logs"):
    """
    设置日志配置，同时输出到终端和文件
    
    Args:
        log_dir: 日志文件夹路径
    """
    # 确保日志目录在 llm_few_shot/logs 下
    if not os.path.isabs(log_dir):
        # 相对路径，确保在 llm_few_shot/logs 下
        current_dir = os.path.dirname(os.path.abspath(__file__))
        log_dir = os.path.join(current_dir, log_dir)
    
    # 创建日志目录
    os.makedirs(log_dir, exist_ok=True)
    
    # 生成日志文件名（包含时间戳）
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    log_file = os.path.join(log_dir, f"validation_{timestamp}.log")
    
    # 配置根日志记录器
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
        handlers=[
            # 控制台处理器
            logging.StreamHandler(),
            # 文件处理器
            logging.FileHandler(log_file, encoding='utf-8')
        ]
    )
    
    # 设置第三方库的日志级别
    logging.getLogger('openai').setLevel(logging.WARNING)
    logging.getLogger('urllib3').setLevel(logging.WARNING)
    
    # 记录日志配置信息
    logger = logging.getLogger(__name__)
    logger.info(f"日志系统初始化完成")
    logger.info(f"日志文件路径: {log_file}")
    
    return log_file
